#ifndef AT_MATH_H
#define AT_MATH_H

extern const float ATMath_PI;

int ATMath_Min(int value1, int value2);

float ATMath_Min(float value1, float value2);

int ATMath_Max(int value1, int value2);

float ATMath_Max(float value1, float value2);

int ATMath_Clamp(int min, int value, int max);

float ATMath_Clamp(float min, float value, float max);

float ATMath_Round(float value);

float ATMath_Truncate(float value);

int32 ATMath_Random();

float ATMath_SqaureRoot(float value);

float ATMath_Sin(float radians);

float ATMath_Cos(float radians);

float ATMath_Tan(float radians);

float ATMath_ASin(float radians);

float ATMath_ACos(float radians);

float ATMath_ATan(float radians);

float ATMath_DegToRad(float degrees);

size_t ATMath_GetNextPowerOf2(uint32 value);

uint32 ATMath_BitSetCount32(uint32 value);

#endif // AT_MATH_H
